@echo off
REM Windows部署脚本

setlocal

REM 设置变量
set APP_NAME=RemoteMaster
set BUILD_DIR=%~dp0..\..\build
set DEPLOY_DIR=%~dp0..\..\deploy\windows\package
set QT_DIR=C:\Qt\6.2\msvc2019_64
set WINDEPLOYQT=%QT_DIR%\bin\windeployqt.exe

echo 检测构建环境...

REM 检查Visual Studio构建目录
if exist "%~dp0..\..\build_vs2022" (
    echo 检测到Visual Studio 2022构建目录
    set BUILD_DIR=%~dp0..\..\build_vs2022
    set CONFIG=Release
) else (
    echo 使用默认构建目录
    set CONFIG=
)

echo 构建目录: %BUILD_DIR%

REM 检查可执行文件
if defined CONFIG (
    if exist "%BUILD_DIR%\%CONFIG%\%APP_NAME%.exe" (
        set EXE_PATH=%BUILD_DIR%\%CONFIG%\%APP_NAME%.exe
        echo 使用Visual Studio构建的可执行文件
    ) else (
        echo 未找到Visual Studio构建的可执行文件
        goto cmake_check
    )
) else (
    :cmake_check
    if exist "%BUILD_DIR%\%APP_NAME%.exe" (
        set EXE_PATH=%BUILD_DIR%\%APP_NAME%.exe
        echo 使用CMake构建的可执行文件
    ) else (
        echo 错误: 未找到可执行文件，请先构建项目
        pause
        exit /b 1
    )
)

REM 创建部署目录
if exist "%DEPLOY_DIR%" (
    echo 删除现有部署目录...
    rmdir /s /q "%DEPLOY_DIR%"
)

echo 创建部署目录...
mkdir "%DEPLOY_DIR%"

REM 复制可执行文件
echo 复制可执行文件...
copy "%EXE_PATH%" "%DEPLOY_DIR%\"

REM 复制依赖库
echo 复制依赖库...
if exist "%WINDEPLOYQT%" (
    "%WINDEPLOYQT%" --dir "%DEPLOY_DIR%" "%DEPLOY_DIR%\%APP_NAME%.exe"
) else (
    echo 警告: windeployqt未找到。请设置正确的QT_DIR。
)

REM 复制其他必要文件
echo 复制附加文件...
copy "%~dp0..\..\README.md" "%DEPLOY_DIR%\"
copy "%~dp0..\..\LICENSE" "%DEPLOY_DIR%\" 2>nul

echo 部署完成。
echo 可执行文件位于: %DEPLOY_DIR%

REM 创建安装程序 (使用NSIS)
echo 创建安装程序...
set NSIS_DIR=C:\Program Files (x86)\NSIS
if exist "%NSIS_DIR%\makensis.exe" (
    "%NSIS_DIR%\makensis.exe" "%~dp0\installer.nsi"
    echo 安装程序创建成功。
) else (
    echo 警告: 未找到NSIS。请安装NSIS以创建安装程序。
)

echo.
echo 如需在Visual Studio 2022中构建项目，请参考:
echo %~dp0README_VS2022.md
echo.

pause